import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  },
  // 性能优化配置
  build: {
    // 启用代码分割
    rollupOptions: {
      output: {
        manualChunks: {
          // 将Vue相关库分离
          'vue-vendor': ['vue', 'vue-router', 'pinia'],
          // 将Element Plus分离
          'element-plus': ['element-plus'],
          // 将图表库分离
          'charts': ['echarts'],
          // 将工具库分离
          'utils': ['axios', 'lodash-es']
        }
      }
    },
    // 启用CSS代码分割
    cssCodeSplit: true,
    // 启用源码映射（开发环境）
    sourcemap: true
  },
  // 开发服务器优化
  server: {
    port: 3000,
    open: true,
    // 启用HMR优化
    hmr: {
      overlay: false
    }
  },
  // 依赖预构建优化
  optimizeDeps: {
    include: [
      'vue',
      'vue-router', 
      'pinia',
      'element-plus',
      'echarts',
      'axios'
    ],
    exclude: ['@vueuse/core']
  },
  // CSS预处理器配置
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@import "@/styles/variables.scss";`
      }
    }
  }
}) 